/*
========================================================================
 Name        : SysSettingList.h
 Author      : shitou
 Copyright   : Your copyright notice
 Description : 
========================================================================
*/
#ifndef SYSSETTINGLIST_H
#define SYSSETTINGLIST_H

// [[[ begin generated region: do not modify [Generated Includes]
#include <aknsettingitemlist.h>
// ]]] end generated region [Generated Includes]

#include "IApnDynamicArray.h"
#include "SysSetting.h"

// [[[ begin [Event Handler Includes]
// ]]] end [Event Handler Includes]

// [[[ begin generated region: do not modify [Generated Forward Declarations]
class MEikCommandObserver;
class TSysSettingListSettings;
// ]]] end generated region [Generated Forward Declarations]

/**
 * @class	CSysSettingList SysSettingList.h
 */
class CSysSettingList : public CAknSettingItemList
	{
public: // constructors and destructor

	CSysSettingList( 
			TSysSettingListSettings& settings, 
			MEikCommandObserver* aCommandObserver );
	virtual ~CSysSettingList();

public:

	// from CCoeControl
	void HandleResourceChange( TInt aType );

	// overrides of CAknSettingItemList
	CAknSettingItem* CreateSettingItemL( TInt id );
	void EditItemL( TInt aIndex, TBool aCalledFromMenu );
	TKeyResponse OfferKeyEventL( 
			const TKeyEvent& aKeyEvent, 
			TEventCode aType );

public:
	// utility function for menu
	void ChangeSelectedItemL();

	void LoadSettingValuesL(TSysSetting aSetting);
	void SaveSettingValuesL(TSysSetting& aSetting);
		
private:
	// override of CAknSettingItemList
	void SizeChanged();

private:
	// current settings values
	TSysSettingListSettings& iSettings;
	MEikCommandObserver* iCommandObserver;
	CIApnDynamicArray* iApnItem;
	// [[[ begin generated region: do not modify [Generated Methods]
public: 
	// ]]] end generated region [Generated Methods]
	
	// [[[ begin generated region: do not modify [Generated Type Declarations]
public: 
	// ]]] end generated region [Generated Type Declarations]
	
	// [[[ begin generated region: do not modify [Generated Instance Variables]
private: 
	// ]]] end generated region [Generated Instance Variables]
	
	
	// [[[ begin [Overridden Methods]
protected: 
	// ]]] end [Overridden Methods]
	
	
	// [[[ begin [User Handlers]
protected: 
	// ]]] end [User Handlers]
	
	};
#endif // SYSSETTINGLIST_H
